#ifndef STD_EQUAL_TO_H
#define STD_EQUAL_TO_H



  // 
  //    is_equal_to
  // 
  // 
  //        is_equal_to(6)(x)
  //            
  //            will be true only if x == 6
  // 
  // 

  template <typename TYPE>
    struct t_is_equal_to : public std::unary_function<TYPE, bool>
    {
    t_is_equal_to(const TYPE& x):
        m_x(x){    }
      bool
      operator()(const TYPE& x) const
      { return x == m_x; }
    private:
        const TYPE& m_x;
    };

template <typename T> t_is_equal_to<T> is_equal_to(const T& t) {return t_is_equal_to<T>(t);}

#endif  // STD_EQUAL_TO_H

